package com.codi.bus.constant;

import java.math.BigDecimal;
import java.util.ArrayList;
import java.util.List;

public class GlobalConstant {

    // xxl-job
    public static final String URL_SH300_TEMPLATE = "http://data.gtimg.cn/flashdata/hushen/daily/{}/sh000300.js";
    public static final String URL_SH300_LATEST = "http://data.gtimg.cn/flashdata/hushen/latest/daily/sh000300.js";

    /**
     * 公共分页数
     **/
    public static final int PAGE_SIZE = 200;

    // 通道id
    // 金品通过内嵌h5页面请求基金
    public static final String GOLD_LIFE_H5_CHANNEL = "9001";
    // 通过金品http请求基金
    public static final String GOLD_LIFE_CHANNEL = "9002";

    // 系统级参数
    public static final String CONFIG_IS_DEVELOPMENT = "codi.isDevelopment";
    public static final String CONFIG_SKIP_REQUEST_SIGN = "codi.skipRequestSign";
    public static final String CONFIG_MOCK_SMS_VERIFY_CODE = "codi.mockSmsVerifyCode";


    // 手机号码长度
    public static final Integer MOBILE_LENGTH = 11;
    // 手机session保留天数
    public static final Integer EXPIRED_DAYS = 10;
    // 创蓝
    public static final String SMS_CHANNEL_DEFAULT = "CLan";
    // sms.properties属性channel key
    public static final String SMS_PROPERTY_CHANNEL = "channel";
    // templatecode key
    public static final String SMS_PROPERTY_TEMPLATE_CODE = "templatecode";
    public static final String SMS_TEMPLATE_CODE_DEFAULT = "REGVERIFYSMS";
    // 用户验证码
    public static final String SMS_BIZ_CODE_VERIFY = "REGVERIFYSMS";
    // 用户验证码字符串替换KEY
    public static final String SMS_PLACEHOLDER_VCODE = "VCODE";
    public static final String H5 = "H5";
    public static final long H5_TOKEN_ACTIVE_TIME = 1000 * 60 * 60 * 24 * 15;//15天
    //--------------------------------------sms begin
    public static final String SMS_TPL_NOTIFY_ORGANIZATION = "SMS_TPL_NOTIFY_ORGANIZATION";
    public static final String SMS_TPL_NOTIFY_ORGANIZATION_LOGIN_ID = "LOGINID";

    public static final String SMS_TPL_NOTIFY_ORG_SUC = "SMS_TPL_NOTIFY_ORG_AUDIT_SUC";
    public static final String SMS_TPL_NOTIFY_ORG_FAIL = "SMS_TPL_NOTIFY_ORG_AUDIT_FAIL";
    //--------------------------------------sms end


    // 短信验证码过期时间
    public static final String SMS_PROPERTY_EXPIRED_SECONDS = "expiredseconds";
    public static final Integer SMS_EXPIRED_SECONDS_DEFAULT = 120;
    // 申请编号过去时间
    public static final Integer APPLY_EXPIRED_HOURS_DEFAULT = 24;

    // 申请编号过去时间
    public static final Integer ASSETS_EXPIRED_HOURS_DEFAULT = 30;

    // 日期格式 - yyyyMMdd
    public static final String DATE_FORMAT_YYYYMMDD = "yyyyMMdd";
    /* 日期格式 yyyy-MM-dd */
    public static final String DATE_FORMAT_YYYY_MM_DD = "yyyy-MM-dd";

    // 日期格式 - HHmmss
    public static final String DATE_FORMAT_HHMMSS = "HHmmss";

    // 行业短信
    public static final Integer SMS_TYPE_INDUSTRY = 1;
    // 营销短信
    public static final Integer SMS_TYPE_MARKETING = 2;

    // 发送计划-立即发送
    public static final Integer SMS_PLAN_INSTANT = 1;
    // 发送计划-将来发送
    public static final Integer SMS_PLAN_FUTURE = 2;
    // 短信发送状态 - 发送中
    public static final Integer SMS_STATUS_SENDING = 0;
    // 短信发送状态 - 已发送
    public static final Integer SMS_STATUS_SENT = 1;
    // 短信发送状态 - 发送失败
    public static final Integer SMS_STATUS_FAILED = 10;

    // 自拟短信发送接口
    public static final String SMS_SEND_SIMPLE = "/sms/sendSimpleSms";

    // 恒生接口交易流水
    // Map - Key - Request
    public static final String KEY_REQUEST = "_request";
    // Map - Key - Request Raw
    public static final String KEY_REQUEST_RAW = "_request_raw";
    // Map - Key - Request header
    public static final String KEY_REQUEST_HEADER = "_request_header";
    // Map - Key - Request desensitize time
    public static final String KEY_REQUEST_DESENSITIZE_TIME = "_request_des_time";
    // Map - Key - Response
    public static final String KEY_RESPONSE = "_response";
    // Map - Key - Response Raw
    public static final String KEY_RESPONSE_RAW = "_response_raw";
    // Map - Key - Response desensitize time
    public static final String KEY_RESPONSE_DESENSITIZE_TIME = "_response_des_time";
    // Map - Key - List<Map<String, Object>>
    public static final String KEY_LIST_MAP = "_list_map";
    // Map - Key - API cost time
    public static final String KEY_API_COST_TIME = "_api_cost_time";
    // Map - Key - API
    public static final String KEY_API = "_api";

    // Map - Key - Method
    public static final String KEY_METHOD = "_method";

    // Redis - Key - Prefix - Mobile
    public static final String REDIS_KEY_MOBILE = "_mobile";
    // Redis - Key - Prefix - IP
    public static final String REDIS_KEY_IP = "_ip";
    // Redis - Key - Prefix - Apply Buy
    public static final String REDIS_KEY_APPLY_BUY = "_apply_buy";
    // Redis - Key - Prefix - Apply Sell
    public static final String REDIS_KEY_APPLY_SELL = "_apply_sell";
    // Redis - Key - Prefix - Apply Undo
    public static final String REDIS_KEY_APPLY_UNDO = "_apply_undo";
    // Redis - Key - Prefix - Apply VCode
    public static final String REDIS_KEY_APPLY_VCODE = "_apply_vcode";
    // Redis - Key - Prefix - Apply FAST_REDEEM
    public static final String REDIS_KEY_APPLY_FAST_REDEEM = "_apply_fast_redeem";
    // Redis - Key - Prefix - desensitize field
    public static final String REDIS_KEY_DESFD = "_DESFD";

    public static final String REDIS_KEY_ORG_ADD = "_org_add";
    public static final String REDIS_KEY_ORG_MOD = "_org_mod";

    // 交易状态 - 成功
    public static final Integer TRANSACTION_STATUS_SUCCESS = 1;
    // 交易状态 - 失败
    public static final Integer TRANSACTION_STATUS_FAIL = -1;
    // 交易类型-调用恒生API接口
    public static final String TRANSACTION_TYPE_HSAPI = "HSAPI";
    // 交易类别
    // 交易类别 - 申购
    public static final String TRADE_TYPE_BUY = "BUY";
    // 交易类别 - 线下申购
    public static final String TRADE_TYPE_OFFLINE_BUY = "OFFLINE_BUY";
    // 交易类别 - 赎回
    public static final String TRADE_TYPE_SELL = "SELL";
    // 交易类别 - 撤单
    public static final String TRADE_TYPE_CANCEL = "CANCEL";
    // 交易类别 - 赎回转购
    public static final String TRADE_TYPE_SELL_THEN_BUY = "SELL_THEN_BUY";
    // 交易类别 - 赎回普通基金转购瑞富宝
    public static final String TRADE_TYPE_SELL_THEN_BUY_WALLET = "SELL_THEN_BUY_WALLET";
    // 交易类别 - 定投申购
    public static final String TRADE_TYPE_FIX = "FIX";
    // 交易类别 - 定投修改
    public static final String TRADE_TYPE_FIX_MODIFY = "FIX_MODIFY";
    // 交易类别 - 定投终止
    public static final String TRADE_TYPE_FIX_STOP = "FIX_STOP";
    // 交易类别 - 快速赎回
    public static final String TRADE_TYPE_FAST_REDEEM = "FAST_REDEEM";
    // 订单状态
    // 订单状态 - 交易申请
    public static final Integer ORDER_STATUS_APPLY = 1;
    // 订单状态 - 交易申请失败
    public static final Integer ORDER_STATUS_APPLY_FAIL = -1;
    // 订单状态 - 交易确认
    public static final Integer ORDER_STATUS_CONFIRM = 2;
    // 订单状态 - 交易确认失败
    public static final Integer ORDER_STATUS_CONFIRM_FAIL = -2;
    // 订单状态 - 撤单
    public static final Integer ORDER_STATUS_CANCEL = 3;
    // 交易基金状态
    // 交易基金状态 - 待确认
    public static final Integer FUND_STATUS_AWAITING_CONFIRM = 1;
    // 交易基金状态 - 确认成功
    public static final Integer FUND_STATUS_CONFIRM_SUC = 2;
    // 交易基金状态 - 申请失败
    public static final Integer FUND_STATUS_APPLY_FAIL = -1;
    // 交易基金状态 - 撤单
    public static final Integer FUND_STATUS_CANCEL = -2;
    // 基金类型
    // 货币型
    public static final String FUND_TYPE_CURRENCY = "2";
    public static final String FUND_TYPE_CURRENCY_STR = "货币型";
    // 保本型
    public static final String FUND_TYPE_BREAK_EVEN = "7";
    // 债券型
    public static final String FUND_TYPE_BOND = "6";
    public static final String FUND_TYPE_BOND_STR = "债券型";
    // 混合基金
    public static final String FUND_TYPE_HYBRID = "b";
    public static final String FUND_TYPE_HYBRID_STR = "混合型";
    // 股票型
    public static final String FUND_TYPE_STOCK = "1";
    public static final String FUND_TYPE_STOCK_STR = "股票型";
    // 指数型
    public static final String FUND_TYPE_INDEX = "8";
    // 基金风险等级
    // 低风险等级
    public static final Integer RISK_LEVEL_LOW = 1;
    public static final String RISK_LEVEL_LOW_STRING = "低风险";
    // 	中低风险基金
    public static final Integer RISK_LEVEL_MIDDLE_LOW = 2;
    public static final String RISK_LEVEL_MIDDLE_LOW_STRING = "中低风险";
    // 中风险等级
    public static final Integer RISK_LEVEL_MEDIUM = 3;
    public static final String RISK_LEVEL_MEDIUM_STRING = "中风险";
    // 中高风险基金
    public static final Integer RISK_LEVEL_MEDIUM_HIGH = 4;
    public static final String RISK_LEVEL_MEDIUM_HIGH_STRING = "中高风险";
    // 高风险等级
    public static final Integer RISK_LEVEL_HIGH = 5;
    public static final String RISK_LEVEL_HIGH_STRING = "高风险";

    // 投资人风险承受能力
    // 安全型
    public static final Integer INVEST_RISK_TOLERANCE_SAFE = 1;

    // 扣款状态
    // 扣款状态-未校验
    public static final String DEDUCT_STATUS_UNCHECK = "0";
    // 未校验
    public static final String DEDUCT_STATUS_UNCHECK_STRING = "未扣款";
    public static final String DEDUCT_STATUS_UNCHECK_ORG_STRING = "待付款";
    // 扣款状态-无效
    public static final String DEDUCT_STATUS_INVALID = "1";
    // 无效
    public static final String DEDUCT_STATUS_INVALID_STRING = "扣款失败";
    public static final String DEDUCT_STATUS_INVALID_ORG_STRING = "付款失败";
    // 扣款状态-有效
    public static final String DEDUCT_STATUS_VALID = "2";
    // 有效
    public static final String DEDUCT_STATUS_VALID_STRING = "扣款成功";
    public static final String DEDUCT_STATUS_VALID_ORG_STRING = "付款成功";
    // 扣款状态-已发送扣款指令
    public static final String DEDUCT_STATUS_SENT = "3";
    // 已发送扣款指令
    public static final String DEDUCT_STATUS_SENT_STRING = "扣款中";
    // 赎回中
    public static final String DEDUCT_STATUS_SELLING_STRING = "赎回中";
    // 赎回已确认
    public static final String DEDUCT_STATUS_SELLED_STRING = "已确认";
    // 发送标志 - 未发送
    public static final String SEND_FLAG_UNSEND = "0";
    // 工作日的结束时间 - HHmmss
    public static final String WORKING_DATE_END_TIME = "150000";
    // 银行卡类型
    // DC-储蓄卡
    public static final String CARD_TYPE_DC = "DC";
    // CC-信用卡
    public static final String CARD_TYPE_CC = "CC";

    // 申请业务编码 - 发起或者查询交易申请
    // 定期定额赎回
    public static final String FUND_BUSIN_CODE_APPLY_FIX_SELL = "095";
    // 定期定额赎回协议签订
    public static final String FUND_BUSIN_CODE_APPLY_FIX_SELL_SIGN = "091";
    // 定期定额赎回协议取消
    public static final String FUND_BUSIN_CODE_APPLY_FIX_SELL_CANCEL = "094";
    // 定期定额赎回协议修改
    public static final String FUND_BUSIN_CODE_APPLY_FIX_SELL_MODIFY = "987";

    // 定期定额申购
    public static final String FUND_BUSIN_CODE_APPLY_FIX_BUY = "039";
    // 定期定额申购协议签订
    public static final String FUND_BUSIN_CODE_APPLY_FIX_BUY_SIGN = "090";
    // 定期定额申购协议修改
    public static final String FUND_BUSIN_CODE_APPLY_FIX_BUY_MODIFY = "988";
    // 定期定额申购协议取消
    public static final String FUND_BUSIN_CODE_APPLY_FIX_BUY_CANCEL = "093";

    // //自定义code T0 申购, 叫做存入
    // public static final String FUND_BUSIN_CODE_T0_APPLY_BUY = "082";
    // //自定义code T0 赎回, 叫做取现
    // public static final String FUND_BUSIN_CODE_T0_APPLY_SELL = "084";


    /**
     * 定投组合状态码集合
     */
    public static final List<String> FIX_BUY_APPLY_CODES = new ArrayList<>();
    /**
     * 分红交易记录
     */
    public static final String FUND_BUSIN_CODE_APPLY_BOUNS = "111";
    /**
     * 定投交易记录
     */
    public static final String FUND_BUSIN_CODE_APPLY_FIX = "222";
    /**
     * 交易记录,正在进行中
     */
    public static final String APPLY_RECORD_ONWAY = "onWay";
    /**
     * 交易记录,全部
     */
    public static final String APPLY_RECORD_ALL = "all";
    //赎回转购货币
    public static final String BUSIN_ASS_CODE_SELL_THEN_BUY_CURRENCY = "06";
    //货币赎回转购
    public static final String BUSIN_ASS_CODE_CURRENCY_SEEL_THEN_BUY = "43";
    //货币赎回转购 字符串
    public static final String BUSIN_ASS_NAME_CURRENCY_SEEL_THEN_BUY = "赎回转购";
    // 申购
    public static final String FUND_BUSIN_CODE_APPLY_BUY = "022";
    // 认购
    public static final String FUND_BUSIN_CODE_APPLY_RBUY = "020";
    // 申购字符串
    public static final String FUND_BUSIN_CODE_APPLY_BUY_STRING = "申购";
    // 赎回
    public static final String FUND_BUSIN_CODE_APPLY_SELL = "024";
    // T0快速赎回
    public static final String FUND_BUSIN_CODE_T0_FAST_APPLY_SELL = "098";
    //组合调仓
    public static final String PORTFOLIO_TRANSFER = "组合调仓";
    // 赎回字符串
    public static final String FUND_BUSIN_CODE_APPLY_SELL_STRING = "赎回";
    // 设置分红方式
    public static final String FUND_BUSIN_CODE_APPLY_BONUS = "029";
    // 设置分红方式字符串
    public static final String FUND_BUSIN_CODE_APPLY_BONUS_STRING = "设置分红方式";
    // 撤销申请
    public static final String FUND_BUSIN_CODE_APPLY_UNDO = "053";
    // 撤销申请字符串
    public static final String FUND_BUSIN_CODE_APPLY_UNDO_STRING = "撤销申请";
    // 确认业务编码 - 查询交易确认
    // 认购
    public static final String FUND_BUSIN_CODE_CONFIRM_SUBSCRIBE_BUY = "120";
    // 申购
    public static final String FUND_BUSIN_CODE_CONFIRM_BUY = "122";
    // 赎回
    public static final String FUND_BUSIN_CODE_CONFIRM_SELL = "124";
    // 快速赎回
    public static final String FUND_BUSIN_CODF_CONFIRM_QUICK_SELL = "235";
    // 定期定额申购
    public static final String FUND_BUSIN_CODE_CONFIRM_FIX_BUY = "139";
    // 强赎
    public static final String FUND_BUSIN_CODE_FORCE_SELL = "142";
    // 确认标志 - 未确认
    public static final String TACONFIRM_FLAG_UNCONFIRM = "9";
    public static final String TACONFIRM_FLAG_UNCONFIRM_STRING = "确认中";
    // 确认标志 - 撤单
    public static final String TACONFIRM_FLAG_UNDO = "4";
    public static final String TACONFIRM_FLAG_UNDO_STRING = "已撤单";
    // 确认标志 - 确认失败
    public static final String TACONFIRM_FLAG_FAIL = "0";
    public static final String TACONFIRM_FLAG_FAIL_STRING = "确认失败";
    // 确认标志 - 确认成功
    public static final String TACONFIRM_FLAG_CONFIRMED = "1";
    public static final String TACONFIRM_FLAG_CONFIRMED_STRING = "确认成功";
    // 确认标志 - 部分确认
    public static final String TACONFIRM_FLAG_PART_CONFIRMED = "2";
    public static final String TACONFIRM_FLAG_PART_CONFIRMED_STRING = "部分确认";
    // 确认标志 - 实时确认成功
    public static final String TACONFIRM_FLAG_REAL_SUCCESS = "3";
    public static final String TACONFIRM_FLAG_REAL_SUCCESS_STRING = "实时确认成功";
    // 确认标志 - 行为确认
    public static final String TACONFIRM_FLAG_ACTION = "5";
    public static final String TACONFIRM_FLAG_ACTION_STRING = "行为确认";
    // 分页请求所有的记录
    public static final Integer MAX_REQUEST_NUM = 99999;
    // 分页请求的最大条数
    public static final Integer ALLOWED_MAX_REQUEST_NUM = 50;
    // 资金方式-I-富友
    public static final String CAPTIAL_MODE_I = "I";
    // 资金方式-I-富有
    public static final String CAPITAL_MODE_EPAY = "I";

    // 资金方式-P-易宝
    //public static final String CAPITAL_MODE_EPAY = "P";

    // 资金方式-P-易宝
    //public static final String CAPITAL_MODE_EPAY_STRING = "易宝";
    // 资金方式-I-富有
    public static final String CAPITAL_MODE_EPAY_STRING = "富有";
    /* 普通方式 */
    public static final String CAPITAL_MODE_COMMON = "1";
    public static final String CAPITAL_MODE_COMMON_STRING = "普通方式";
    /* 网下转账 */
    public static final String CAPTIAL_MODE_K = "K";
    public static final String CAPTIAL_MODE_K_STRING = "网下转账";
    // 资金方式-1-柜台-普通方式
    public static final String CAPITAL_MODE_COUNTER = "1";
    // 资金方式-1-柜台-普通方式
    public static final String CAPITAL_MODE_COUNTER_STRING = "柜台";
    // 用户的来源
    // APP
    public static final String USER_FROM_APP = "APP";
    // 柜台
    public static final String USER_FROM_COUNTER = "COUNTER";
    // WEB
    public static final String USER_FROM_WEB = "WEB";
    /**
     * codi数据源KEY
     **/
    public static final String DATA_SOURCE_CODI = "DATA_SOURCE_CODI";
    /**
     * 基金详情数据源KEY
     **/
    public static final String DATA_SOURCE_FUND_DETAIL = "DATA_SOURCE_FUND_DETAIL";
    /**
     * BigDecimal 0
     */
    public static final BigDecimal BIG_DECIMAL_0 = new BigDecimal(0);
    /**
     * BigDecimal 100
     */
    public static final BigDecimal BIG_DECIMAL_100 = new BigDecimal(100);
    /* 个人用户 */
    public static final String CUST_TYPE_PERSONAL = "1";
    /* 机构户 */
    public static final String CUST_TYPE_ORGANIZATION = "0";
    /* 份额类别 A */
    public static final String SHARE_TYPE_A = "A";
    /* 份额类型B */
    public static final String SHARE_TYPE_B = "B";
    /* 10 */
    public static final BigDecimal NUMBER_TEN = new BigDecimal(10);
    /* 一亿 */
    public static final BigDecimal NUMBER_ONE_HUNDRED_MILLION = new BigDecimal(Math.pow(10, 8));
    /* 一百万，0.01亿 */
    public static final BigDecimal NUMBER_ONE_MILLION = new BigDecimal(Math.pow(10, 6));
    /* 1w */
    public static final BigDecimal NUMBER_TEN_THOUSAND = new BigDecimal(Math.pow(10, 4));
    /* 万元 */
    public static final String PRICE_UNIT_TEN_THOUSAND = "万元";
    /* 亿元 */
    public static final String PRICE_UNIT_TEN_HUNDRED_MILLION = "亿元";
    /* 万份 */
    public static final String SHARE_UNIT_TEN_THOUSAND = "万份";
    /* 亿份 */
    public static final String SHARE_UNIT_TEN_HUNDRED_MILLION = "亿份";
    // 账号状态
    // 未开户
    public static final int ACCOUNT_STATUS_NO_OPEN = 1;
    // 柜台已开户, APP未绑定银行卡
    public static final int ACCOUNT_STATUS_COUNTER_OPEN = 2;
    // APP已开户
    public static final int ACCOUNT_STATUS_APP_OPEN = 3;
    // 主交易账号
    public static final String MAIN_ACCOUNT_FLAG_YES = "1";
    // 设置一个发送次数，控制一个手机号在一个时间段的发送次数
    public static final int SMS_ALLOWED_NUMBERS_ONE_MOBILE_ONE_UNIT = 1;
    // 设置一个发送次数，控制一个IP在一个时间段的发送次数
    public static final int SMS_ALLOWED_NUMBERS_ONE_IP_ONE_UNIT = 600;
    // 设置一个时间段，单位为分钟，控制一个手机号在一个时间段的发送频率，单位为分钟
    public static final int SMS_ALLOWED_TIME_ONE_MOBILE = 1;
    // 设置一个时间段，单位为分钟，控制一个IP在一个时间段的发送频率
    public static final int SMS_ALLOWED_TIME_ONE_IP = 60;
    /*
     * 基金信息中的基金状态: 0 正常开放 1 认购时期 2 停止赎回 3 停止申购 4 封闭期 5 停止交易 6 基金终止 7 权益登记 8 红利发放
     * 9 发行失败 a 非本机构代销 b 发行成功 z 转认购期
     */
    //
    // 正常开放
    public static final String FUND_BASE_STATUS_OPEN = "0";
    // 认购时期
    public static final String FUND_BASE_STATUS_SUBSCRIBE = "1";
    // 停止赎回
    public static final String FUND_BASE_STATUS_STOP_SELL = "2";
    // 停止申购
    public static final String FUND_BASE_STATUS_STOP_BUY = "3";
    // 封闭期
    public static final String FUND_BASE_STATUS_CLOSE = "4";
    // 停止交易
    public static final String FUND_BASE_STATUS_STOP_TRADE = "5";
    // 基金终止
    public static final String FUND_BASE_STATUS_FUND_STOP = "6";
    // 权益登记
    public static final String FUND_BASE_STATUS_GAIN_REGISTER = "7";
    // 红利发放
    public static final String FUND_BASE_STATUS_DIVIDEND_OFFER = "8";
    // 发行失败
    public static final String FUND_BASE_STATUS_ISSUE_FAIL = "9";
    // 非本机构代销
    public static final String FUND_BASE_STATUS_NOT_BELOG = "a";
    // 发行成功
    public static final String FUND_BASE_STATUS_ISSUE_SUCCESS = "b";
    // 转认购期
    public static final String FUND_BASE_STATUS_TURN_TO_SUBSCRIBE = "z";
    // 银行卡状态
    // 不在渠道支持的列表里
    public static final int BANK_CARD_TYPE_NOT_SUPPORT = 1;
    // 信用卡
    public static final int BANK_CARD_TYPE_CC = 2;
    // 储蓄卡
    public static final int BANK_CARD_TYPE_DC = 3;
    // 卡bin未识别出来
    public static final int BANK_CARD_TYPE_UNDEFINE = 4;
    // 币种类别:0-人民币
    public static final Integer MONEY_TYPE_RMB = 0;
    // 交易周期:1个月
    public static final String TRADE_PERIOD_ONE_MONTH = "1";
    public static final String FUND_BUSIN_CODE_FIX = "090";
    /**
     * 协议状态:正常协议修改填A
     */
    public static final String FIX_STATE_NORMAL = "A";
    /**
     * 协议状态:终止协议填H
     */
    public static final String FIX_STATE_STOP = "H";
    // 交易账号状态 - 0-正常
    public static final String TRADE_ACCOUNT_STATUS_WORKING = "0";
    /**
     * 巨额赎回标识：继续赎回
     */
    public static final String FUND_EXCEED_FLAG = "1";
    /**
     * 定投动作：申购
     */
    public static final String FIX_MODEL_NORMAL = "0";
    /**
     * 定投动作：定投修改
     */
    public static final String FIX_MODEL_MODIFY = "1";
    /**
     * 定投动作：定投终止
     */
    public static final String FIX_MODEL_STOP = "2";
    /**
     * 协议周期单位:月
     */
    public static final String PROTOCOL_PERIOD_UNIT_WEEK = "1";
    /**
     * 协议周期单位:月
     */
    public static final String PROTOCOL_PERIOD_UNIT_MONTH = "0";
    /***
     * 系统错误
     */
    public static final String ERROR_TYPE_SYSTEM = "SYS";
    /***
     * 应用错误
     */
    public static final String ERROR_TYPE_APPLICATION = "APC";
    /***
     * 业务错误
     */
    public static final String ERROR_TYPE_BUSINESS = "BUS";
    /**
     * App-Device头
     */
    public static final String HEADER_APP_DEVICE = "App-Device";
    public static final String HEADER_AUTH_TOKEN = "Auth-Token";
    public static final String HEADER_CLIENT_VERSION = "Client-Version";
    public static final String HEADER_OS_TYPE = "Os-Type";
    public static final String HEADER_APP_IDENTIFIER = "App-Identifier";
    public static final String HEADER_USER_AGENT = "User-Agent";
    //入参  企业id
    public static final String REQUEST_PROFILE_ID = "Profile-Id";
    /**
     * 最大的假期数，会被用在计算上一个工作日的接口中
     */
    public static final int MAX_NON_WORKING_DAY = 15;


    //
    /**
     * 零钱包
     */
    public static final int ASSET_TYPE_WALLET = 1;
    /**
     * 基金
     */
    public static final int ASSET_TYPE_FUND = 2;
    /**
     * 设置获取快速赎回未T+1确认份额的前后天数
     */
    public static final Integer FAST_REDEEM_INTERVAL_DAYS_AFTER_BEFORE = 30;
    /**
     * 私募24小时内不能重复预约
     */
    public static final Integer PE_APPOINTMENT_DAYS = 1;
    /**
     * 已上架
     */
    public static final Integer PE_PRODUCT_STUTAS_ONSALE = 1;

    /**
     * 私募
     */
    /**
     * 已下架
     */
    public static final Integer PE_PRODUCT_STUTAS_NOT_ONSALE = 2;
    /**
     * 私募入口用户风险测评时提交测评结果的临时代理用户名称，因为私募入口的时候用户可能只是注册还未开户，所以没有用户名称
     */
    public static final String TEST_PROXY_NAME = "平台代理";
    /**
     * 基金的最新表现,包括周、一个月、三个月、半年、一年、二年、三年、五年、十年、成立以来的回报
     */
    public static final String PERFORMANCE_TYPE_ONE_WEEK = "1W";
    public static final String PERFORMANCE_TYPE_LAST_ONE_WEEK = "L1W";
    public static final String PERFORMANCE_TYPE_ONE_MONTH = "1M";
    public static final String PERFORMANCE_TYPE_THREE_MONTH = "3M";
    public static final String PERFORMANCE_TYPE_SIX_MONTH = "6M";
    public static final String PERFORMANCE_TYPE_ONE_YEAR = "1Y";
    public static final String PERFORMANCE_TYPE_TWO_YEAR = "2Y";
    public static final String PERFORMANCE_TYPE_THREE_YEAR = "3Y";
    public static final String PERFORMANCE_TYPE_FIVE_YEAR = "5Y";
    public static final String PERFORMANCE_TYPE_TEN_YEAR = "10Y";
    /**
     * 首页运营内容的默认版本，此字段设计成用于支持老版本     *
     */
    public static final String DEFAULT_OPERATION_VERSION = "1";
    /**
     * 警示渠道-APP
     */
    public static final String WARNING_CHANNEL_APP = "2";
    /* 需要填写基本资料 */
    public static final int ORGAN_STATE_NEED_PROFILE = 2;
    /* 第一步已做，（审核中）需要证件资料 */
    public static final int ORGAN_STATE_NEED_CERTIFICATE = 3;


    /* 机构 需要基本资料 */
//    public static final int ORGAN_STATE_NEED_STEP1 = 1;
    /* 机构 需要银行卡资料 */
//    public static final int ORGAN_STATE_NEED_STEP2 = 2;
    /* 机构 需要证件资料 */
//    public static final int ORGAN_STATE_NEED_STEP3 = 3;
    /* 初始状态 */
    public static final int ORGAN_STATE_INIT = 0;
    /* 审核中 */
    public static final int ORGAN_STATE_AUDITING = 4;
    /* 审核不通过 */
    public static final int ORGAN_STATE_NOT_PASS = 5;
    /* 审核不通过，需要资证明文件 */
    public static final int ORGAN_STATE_NOT_PASS_NEED_CERTIFICATE = 10;
    /* 审核通过 */
    public static final int ORGAN_STATE_PASS = 6;
    public static final int ACTION_ADD = 1;
    public static final int ACTION_MOD = 2;
    public static final int ACTION_DEL = 3;
    // 宝盈
    public static final String T0_FUND_BAOYING = "BAOYING";
    // 宝盈A
    public static final String T0_FUND_BAOYING_A = "213009";
    // 宝盈B
    public static final String T0_FUND_BAOYING_B = "213909";
    // 金鹰
    public static final String T0_FUND_JINYING = "JINYING";
    // 金鹰A
    public static final String T0_FUND_JINYING_A = "210012";
    // 金鹰B
    public static final String T0_FUND_JINYING_B = "210013";
    //金鹰增益A
    public static final String T0_FUND_JINYING2_A = "004372";
    //金鹰增益A
    public static final String T0_FUND_JINYING2_A_NAME = "金鹰增益货币A";
    public static final String T0_FUND_JINYING2_B = "004373";
    // 长城
    public static final String T0_FUND_CHANGCHENG = "CHANGCHENG";
    // 长城A
    public static final String T0_FUND_CHANGCHENG_A = "200003";
    // 长城E
    public static final String T0_FUND_CHANGCHENG_E = "000861";
    //长城E
    public static final String T0_FUND_CHANGCHENG_E_NAME = "长城货币E";
    // 长城B
    public static final String T0_FUND_CHANGCHENG_B = "200103";
    // 业务分组 portfolio
    public static final String BIZ_GROUP_PORTFOLIO = "PORTFOLIO";
    /**
     * 前端显示 确认和扣款的状态
     */

    public static final String PERSON_BUY_UNCONFIRM_CHARGED = "确认中（扣款中）";
    public static final String PERSON_BUY_UNCONFIRM_CHARGEDSUC = "确认中（扣款成功）";
    public static final String PERSON_BUY_UNCONFIRM_CHARGEDFAIL = "确认失败（扣款失败）";
    public static final String PERSON_BUY_CONFIRMFAIL_CHARGEDSUC = "确认失败（扣款失败）";
    public static final String PERSON_BUY_CONFIRMFAIL_CHARGEDFAIL = "确认失败（扣款失败）";
    public static final String PERSON_BUY_CONFIRMSUC_CHARGEDSUC = "确认成功（扣款成功）";
    public static final String PERSON_BUY_BACK = "已撤单";
    public static final String PERSON_SELL_UNCONFIRM = "赎回中";
    public static final String PERSON_SELL_CONFIRMSUC = "赎回成功";
    public static final String PERSON_SELL_BACK = "已撤单";
    public static final String MECHANISM_BUY_UNCONFIRM_NOCHARGED = "待付款";
    public static final String MECHANISM_BUY_UNCONFIRM_CHARGEDSUC = "确认中（付款成功）";
    public static final String MECHANISM_BUY_UNCONFIRM_CHARGEDFAIL = "确认失败（付款失败）";
    public static final String MECHANISM_BUY_CONFIRMFAIL_CHARGEDSUC = "确认失败（付款失败）";
    public static final String MECHANISM_BUY_CONFIRMFAIL_CHARGEDFAIL = "确认失败（扣款失败）";
    public static final String MECHANISM_BUY_CONFIRMSUC_CHARGEDSUC = "确认成功（付款成功）";
    public static final String MECHANISM_BUY_BACK = "已撤单";
    public static final String MECHANISM_SELL_UNCONFIRM = "赎回中";
    public static final String MECHANISM_SELL_CONFIRMSUC = "赎回成功";
    public static final String MECHANISM_SELL_BACK = "已撤单";
    //积分接口渠道编码
    public static final String INTEGRAL_CHANNEL_ID = "1000";
    //积分业务编码
    public static final String INTEGRAL_BUSINESSID_REGISTER = "100001";//200
    public static final String INTEGRAL_BUSINESSID_BIND = "vzlml2qgvr2769tmk8ok";//300
    public static final String INTEGRAL_BUSINESSID_CURRENCY = "100003";
    public static final String INTEGRAL_BUSINESSID_FUND = "100004";
    public static final String INTEGRAL_BUSINESSID_PORTFOLIO = "100005";
    public static final String INTEGRAL_BUSINESSID_INVITE_REGISTER = "100006";// 200
    public static final String INTEGRAL_BUSINESSID_INVITE_BIND = "rbacxt5pbyo3di5vs5xv";// 300
    public static final String INTEGRAL_BUSINESSID_INVITE_TRANSACTION = "100007";//500
    public static final String INTEGRAL_BUSINESSID_FIRST = "t7gsutxmo09fjp53onmd";//500
    public static final String CURRENCY = "货币基金";
    public static final String FUND = "非货币基金";
    public static final String BALANCE = "平衡组合";
    public static final String ENTERPRISING = "进取组合";
    public static final String STEADY = "稳健组合";
    public static final String ENTERPRISINGCODE = "3001";
    public static final String BALANCECODE = "3002";
    public static final String STEADYCODE = "3003";
    public static final String DIVIDEND_CONFIRM = "确认成功";
    public static final String WORKING_DAY = "workingDay";
    //用于消息中心展示
    public static final String BUY_CONFIRM_SUCCESS = "申购确认成功";
    public static final String BUY_CONFIRM_FAIL = "申购确认失败";
    public static final String SELL_CONFIRM_SUCCESS = "赎回确认成功";
    public static final String SELL_CONFIRM_FAIL = "赎回确认失败";
    public static final String PORTFOLIO_TRANSFER_SUCCESS = "组合调仓完成";
    public static final String PORTFOLIO_TRANSFER_FAIL = "组合调仓失败";
    public static final String DIVIDEND_CONFIRM_SUCCESS = "分红发放成功";
    public static final String FIX_CONFIRM_SUCCESS = "定投申购成功";
    public static final String FAST_REDEEM_SUCCESS = "快速取现成功";
    public static final String UNDO_SUCCESS = "撤单成功";
    public static final String PORTFOLIO_TRANSFER_DOING = "组合调仓进行中";
    //红利再投
    public static final String AUTO_BUY = "0";
    //现金分红
    public static final String CASH_DIVIDEND = "1";
    // 交易确认 申购
    public static final String BUY_TRADE_CONFIRM_TITLE = "申购确认";
    public static final String BUY_TRADE_CONFIRM_EXPENSE_TITLE = "申购费（元）";
    public static final String BUY_TRADE_CONFIRM_AFFIRMSHARE_TITLE = "确认份额（份）";
    // 交易确认 赎回
    public static final String SELL_TRADE_CONFIRM_TITLE = "赎回确认";
    public static final String SELL_TRADE_CONFIRM_EXPENSE_TITLE = "赎回费（由基金公司收取）";
    public static final String SELL_TRADE_CONFIRM_AFFIRMSHARE_TITLE = "确认金额（元）";
    public static final String SELL_TRADE_CONFIRM_TIP = "资金到账预计需要3~5个工作日，具体以实际银行到账时间为准";
    public static final String SELL_TRADE_CONFIRM_TIP_T0 = "资金预计下一个交易日 17:00前到账，具体到账时间以银行入账为准";
    // 交易确认 分类
    public static final String TYPE_BUY = "买入";
    public static final String TYPE_BUY_STATUS = "1";
    public static final String TYPE_SELL = "卖出";
    public static final String TYPE_SELL_STATUS = "2";
    public static final String TYPE_FIX = "定投";
    public static final String TYPE_FIX_STATUS = "3";
    public static final String TYPE_DIVIDEND = "分红";
    public static final String TYPE_DIVIDEND_STATUS = "4";
    public static final String TYPE_TRANSFER = "组合调仓";
    public static final String TYPE_TRANSFER_STATUS = "5";
    public static final String TYPE_OTHERS = "其他";
    public static final String TYPE_OTHERS_STATUS = "6";
    public static final Long WUBAIWAN = 5000000L;
    //收益统计期限
    public static final String ALL_TIME = "0";
    public static final String THIS_YEAR = "1";
    public static final String THREE_MONTH = "2";
    public static final String ONE_MONTH = "3";
    public static final String ONE_WEEK = "4";
    //累计收益图表
    public static final String MONTH = "4";
    public static final String SEASON = "3";
    public static final String HALF_YEAR = "2";
    public static final String YEAR = "1";
    public static final String ALL = "0";
    public static final String[] EMAIL_ATTACHMENT = new String[]{"开放式基金业务授权委托书（机构） .pdf", "预留印鉴卡（机构）.pdf"};
    //货币的前端基金类型
    public static final int CURRENCY_APP_FUND_TYPE_ONE = 900000;
    public static final int CURRENCY_APP_FUND_TYPE_TWO = 1109;
    //农业银行 简称
    public static final String ABC = "ABC";
    /**
     * T0 在使用funds
     */
    public static int T0_FUNDS_IN_USE = 1;
    public static String PORTFOLIO_CODE_ONE = "3001";
    public static String PORTFOLIO_CODE_TWO = "3002";
    public static String PORTFOLIO_CODE_THREE = "3003";

    static {
        FIX_BUY_APPLY_CODES.add(FUND_BUSIN_CODE_APPLY_FIX_SELL);
        FIX_BUY_APPLY_CODES.add(FUND_BUSIN_CODE_APPLY_FIX_SELL_SIGN);
        FIX_BUY_APPLY_CODES.add(FUND_BUSIN_CODE_APPLY_FIX_SELL_CANCEL);
        FIX_BUY_APPLY_CODES.add(FUND_BUSIN_CODE_APPLY_FIX_SELL_MODIFY);
        FIX_BUY_APPLY_CODES.add(FUND_BUSIN_CODE_APPLY_FIX_BUY);
        FIX_BUY_APPLY_CODES.add(FUND_BUSIN_CODE_APPLY_FIX_BUY_SIGN);
        FIX_BUY_APPLY_CODES.add(FUND_BUSIN_CODE_APPLY_FIX_BUY_MODIFY);
        FIX_BUY_APPLY_CODES.add(FUND_BUSIN_CODE_APPLY_FIX_BUY_CANCEL);
    }

}
